package com.hxzy.shop.commodity.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxzy.shop.commodity.dto.DrugExportDto;
import com.hxzy.shop.commodity.dto.req.*;
import com.hxzy.shop.commodity.dto.resp.*;
import com.hxzy.shop.entity.Drug;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author by zhy
 * @date 2021-07-07 13:50
 * @Version 1.0
 */
@Mapper
public interface DrugMapper extends BaseMapper<Drug> {

    //DrugDetailsResp findDrugList(String drugId);
    //List<LabelDrugResp> findByDrugInnerLabel(@Param("labelId") String labelId,
//                                             @Param("drugName") String drugName,
//                                             @Param("drugCode") String drugCode,
//                                             @Param("categoryManagementId") String categoryManagementId,
//                                             @Param("parentClassifiedManagementId") String parentClassifiedManagementId);
    /**
     * 根据id 获得
     * @param drugId 药品id
     * @return 药品
     */
    Drug getById(Long drugId);

    /**
     * 分页查询
     * @param drugPageReq 药品请求model
     * @return 返回药品列表
     */
    List<Drug> getDrugPage(DrugPageReq drugPageReq);

    /**
     * 查看药品详细--用于编辑
     * @param req 药品id
     * @return 药品详细
     */
    DrugResp getOneDrug(DrugInfoReq req);

    /**
     * 根据id 查询
     * @param id id
     * @return 药品集合
     */
    List<Drug> getIds(@Param("ids")List<Long> id);

    /**
     * 获得药品分页
     *
     * @param drugCommRep 获得药品的model
     * @return 药品返回体
     */
    //List<DrugCommResp> getDrugCommResp(DrugCommRep drugCommRep);
    /**
     * 为你推荐
     *
     * @param activityReq 请求model
     * @return 推荐列表
     */
    //List<ActivityDrugResp> getRecommend(ActivityReq activityReq);
    /**
     * 图片
     *
     * @param drugId -
     * @return --
     */
    //List<ImageReq> getImage(String drugId);
    /**
     * 秒杀药品详细
     *
     * @param drugReq -
     * @return -
     */
    //DrugDetailResp getDrugDetail(DrugReq drugReq);
    /**
     * 是否结束
     * @param drugId
     * @param activityId
     * @param activityType
     * @return
     */
    //HasSoldOutResp hasSoldOut(@Param("drugId") String drugId, @Param("activityId") String activityId, @Param("activityType") Integer activityType);

    /**
     *全部疫情管理药品（感冒药）
     * @return
     */
    //List<Drug> findEpidemicDrugList();

    //List<Drug> multipleSearch(@Param("drugName") String drugName, @Param("drugId") String drugId, @Param("classifyId") String classifyId);

    //List<DrugListResp> getDrugPageList(DrugPageReq drugPageReq);

    /**
     * @author qy
     * @date 2021/8/9
     * @description 分页查询处方药
     */
    List<DrugResp> getPrescriptionPage(DrugPageReq drugPageReq);

    /**
     * @author qy
     * @date 2021/8/11
     * @description 总店查询药品详情
     **/
    DrugResp getOneDrugPar(DrugInfoReq req);

    /**
     * 营销药品列表
     * @param drugPageReq
     * @return
     */
    List<MarketingDrugListResp> getPrecinctDrug(DrugPageReq drugPageReq);

    /**
    * 根据分类获取药品列表
    * */
    //List<Drug> getDrugPageByClassification(ClassificationDrugPageReq req);


    /**获取未分类的药品列表**/

    List<Drug> getUncategorizedDrugs(@Param("state") Boolean state);

    void updateDrug(BatchEditDrugReq req);

    Integer deletePointsRewardByRewardId(@Param("rewardId") Long rewardId, @Param("type") String type);

    /**
     * 新建合约选择商品
     * @param drugName
     * @param classifiedManagementId
     * @param sonClassifiedManagementId
     * @param barCodeList
     * @param drugCodeList
     * @return
     */
    //List<DrugResp> getAllDrugInfo(@Param("drugName") String drugName,@Param("classifiedManagementId") Long classifiedManagementId,@Param("sonClassifiedManagementId") Long sonClassifiedManagementId,@Param("barCodeList") List<String> barCodeList,@Param("drugCodeList") List<String> drugCodeList,@Param("barCode") String barCode,@Param("drugCode") String drugCode);

    //List<DrugExportDto> getDrugExportList(@Param("drugId") List<Long> drugId);
    /**
     * 分页查询可选择商品
     * @param req
     * @return
     */
    //List<DrugActivityResp> selfSelectDrugList(ActivityBaseReq req);
}
